package com.example.administrator.financialmanager;

import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import com.example.administrator.financialmanager.dao.InaccountDao;
import com.example.administrator.financialmanager.dao.Outaccountdao;
import com.example.administrator.financialmanager.model.Tb_inaccount;
import com.example.administrator.financialmanager.model.Tb_outaccount;

import java.util.Calendar;

public class OutcomeDetailActivity extends AppCompatActivity {
    protected static final int DATE_DIALOG_ID = 0;// 创建日期对话框常量
    EditText detail_outcome_money_input, detail_outcome_time_input, detail_outcome_position_input, detail_outcome_describe_input;// 创建4个EditText对象
    Spinner detail_outcome_kind_input;// 创建Spinner对象
    Button detail_outcome_admit,detail_outcome_delete,detail_outcome_back;// 创建三个Button对象
    String[] strInfos;// 定义字符串数组
    String strid, strType;// 定义两个字符串变量，分别用来记录信息编号和管理类型

    private int mYear;// 年
    private int mMonth;// 月
    private int mDay;// 日

    Outaccountdao outaccountDao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_outcome_detail);// 设置布局文件

        outaccountDao = new Outaccountdao(OutcomeDetailActivity.this);// 创建OutaccountDAO对象

        detail_outcome_money_input = (EditText) findViewById(R.id.detail_outcome_money_input);// 获取金额文本框
        detail_outcome_time_input = (EditText) findViewById(R.id.detail_outcome_time_input);// 获取时间文本框
        detail_outcome_kind_input = (Spinner) findViewById(R.id.detail_outcome_kind_input);// 获取类别下拉列表
        detail_outcome_position_input = (EditText) findViewById(R.id.detail_outcome_position_input);// 获取地点/付款方文本框
        detail_outcome_describe_input = (EditText) findViewById(R.id.detail_outcome_describe_input);// 获取备注文本框
        detail_outcome_admit = (Button) findViewById(R.id.detail_outcome_admit);// 获取修改按钮
        detail_outcome_delete = (Button) findViewById(R.id.detail_outcome_delete);// 获取取消按钮
        detail_outcome_back = (Button) findViewById(R.id.detail_outcome_back);// 获取返回按钮


        Intent intent = getIntent();// 创建Intent对象
//        Bundle bundle = intent.getExtras();// 获取传入的数据，并使用Bundle记录
//        strInfos = bundle.getStringArray(DataManageHomeActivity.FLAG);// 获取Bundle中记录的信息
        strInfos = intent.getStringArrayExtra(IncomeListActivity.FLAG);// 获取Bundle中记录的信息
        strid = strInfos[0];// 记录id
        strType = strInfos[1];// 记录类型

        // 根据编号查找支出信息，并存储到Tb_outaccount对象中
        Tb_outaccount tb_outaccount = outaccountDao.find(strid);
        detail_outcome_money_input.setText(String.valueOf(tb_outaccount.getMoney()));// 显示金额
        detail_outcome_time_input.setText(tb_outaccount.getTime());// 显示时间
        ///******************修改下拉列表项***********************
        //创建一个适配器
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                OutcomeDetailActivity.this, R.array.outtype,android.R.layout.simple_dropdown_item_1line);
        detail_outcome_kind_input.setAdapter(adapter); 					// 将适配器与选择列表框关联
        ///******************************************************
        detail_outcome_kind_input.setPrompt(tb_outaccount.getType());// 显示类别
        detail_outcome_position_input.setText(tb_outaccount.getAddress());// 显示地点
        detail_outcome_describe_input.setText(tb_outaccount.getMark());// 显示备注


        detail_outcome_time_input.setOnClickListener(new View.OnClickListener() {// 为时间文本框设置单击监听事件
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                showDialog(DATE_DIALOG_ID);// 显示日期选择对话框
            }
        });

        detail_outcome_admit.setOnClickListener(new View.OnClickListener() {// 为修改按钮设置监听事件
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Tb_outaccount tb_outaccount = new Tb_outaccount();// 创建Tb_outaccount对象
                tb_outaccount.set_id(strid);// 设置编号
                tb_outaccount.setMoney(Double.parseDouble(detail_outcome_money_input
                        .getText().toString()));// 设置金额
                tb_outaccount.setTime(detail_outcome_time_input.getText().toString());// 设置时间
                tb_outaccount.setType(detail_outcome_kind_input.getSelectedItem().toString());// 设置类别
                tb_outaccount.setAddress(detail_outcome_position_input.getText().toString());// 设置地点
                tb_outaccount.setMark(detail_outcome_describe_input.getText().toString());// 设置备注
                outaccountDao.update(tb_outaccount);// 更新支出信息

                // 弹出信息提示
                Toast.makeText(OutcomeDetailActivity.this, "〖数据〗修改成功！", Toast.LENGTH_SHORT)
                        .show();
            }
        });

        detail_outcome_delete.setOnClickListener(new View.OnClickListener() {// 为删除按钮设置监听事件
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                outaccountDao.detele(strid);// 根据编号删除支出信息
                Toast.makeText(OutcomeDetailActivity.this, "〖数据〗删除成功！", Toast.LENGTH_SHORT)
                        .show();
            }
        });
        detail_outcome_back.setOnClickListener(new View.OnClickListener() {// 为删除按钮设置监听事件
            @Override
            public void onClick(View arg0) {
                finish();
            }
        });

        final Calendar c = Calendar.getInstance();// 获取当前系统日期
        mYear = c.get(Calendar.YEAR);// 获取年份
        mMonth = c.get(Calendar.MONTH);// 获取月份
        mDay = c.get(Calendar.DAY_OF_MONTH);// 获取天数
        updateDisplay();// 显示当前系统时间
    }

    @Override
    protected Dialog onCreateDialog(int id){// 重写onCreateDialog方法
        switch (id) {
            case DATE_DIALOG_ID:// 弹出日期选择对话框
                return new DatePickerDialog(OutcomeDetailActivity.this, mDateSetListener, mYear, mMonth,
                        mDay);
        }
        return null;
    }

    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {
            mYear = year;// 为年份赋值
            mMonth = monthOfYear;// 为月份赋值
            mDay = dayOfMonth;// 为天赋值
            updateDisplay();// 显示设置的日期
        }
    };

    private void updateDisplay() {
        // 显示设置的时间
        detail_outcome_time_input.setText(new StringBuilder().append(mYear).append("-")
                .append(mMonth + 1).append("-").append(mDay));
    }

}
//package com.example.administrator.financialmanager;
//
//        import android.app.DatePickerDialog;
//        import android.app.Dialog;
//        import android.content.Intent;
//        import android.support.v7.app.AppCompatActivity;
//        import android.os.Bundle;
//        import android.view.View;
//        import android.widget.ArrayAdapter;
//        import android.widget.Button;
//        import android.widget.DatePicker;
//        import android.widget.EditText;
//        import android.widget.Spinner;
//        import android.widget.Toast;
//
//        import com.example.administrator.financialmanager.dao.InaccountDao;
//        import com.example.administrator.financialmanager.dao.Outaccountdao;
//        import com.example.administrator.financialmanager.model.Tb_inaccount;
//        import com.example.administrator.financialmanager.model.Tb_outaccount;
//
//        import java.util.Calendar;
//
//public class OutcomeDetailActivity extends AppCompatActivity {
//    protected static final int DATE_DIALOG_ID = 0;// 创建日期对话框常量
//    EditText detail_outcome_money_input, detail_outcome_time_input, detail_outcome_position_input, detail_outcome_describe_input;// 创建4个EditText对象
//    Spinner detail_outcome_kind_input;// 创建Spinner对象
//    Button detail_outcome_admit, detail_outcome_cancel;// 创建两个Button对象
//    String[] strInfos;// 定义字符串数组
//    String strid, strType;// 定义两个字符串变量，分别用来记录信息编号和管理类型
//
//    private int mYear;// 年
//    private int mMonth;// 月
//    private int mDay;// 日
//
//    Outaccountdao outaccountDao;
//    InaccountDao inaccountDao;
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        // TODO Auto-generated method stub
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_outcome_detail);// 设置布局文件
//
//        outaccountDao = new Outaccountdao(OutcomeDetailActivity.this);// 创建OutaccountDAO对象
//        inaccountDao = new InaccountDao(OutcomeDetailActivity.this);// 创建InaccountDAO对象
//
//        detail_outcome_money_input = (EditText) findViewById(R.id.detail_outcome_money_input);// 获取金额文本框
//        detail_outcome_time_input = (EditText) findViewById(R.id.detail_outcome_time_input);// 获取时间文本框
//        detail_outcome_kind_input = (Spinner) findViewById(R.id.detail_outcome_kind_input);// 获取类别下拉列表
//        detail_outcome_position_input = (EditText) findViewById(R.id.detail_outcome_position_input);// 获取地点/付款方文本框
//        detail_outcome_describe_input = (EditText) findViewById(R.id.detail_outcome_describe_input);// 获取备注文本框
//        detail_outcome_admit = (Button) findViewById(R.id.detail_outcome_admit);// 获取修改按钮
//        detail_outcome_cancel = (Button) findViewById(R.id.detail_outcome_cancel);// 获取删除按钮
//
//        Intent intent = getIntent();// 创建Intent对象
//        Bundle bundle = intent.getExtras();// 获取传入的数据，并使用Bundle记录
//        strInfos = bundle.getStringArray(DataManageHomeActivity.FLAG);// 获取Bundle中记录的信息
//        strid = strInfos[0];// 记录id
//        strType = strInfos[1];// 记录类型
//        if ("data_manage_home_outcome_collect_btn".equals(strType)){// 如果类型是data_manage_home_outcome_collect_btn
//            // 根据编号查找支出信息，并存储到Tb_outaccount对象中
//            Tb_outaccount tb_outaccount = outaccountDao.find(Integer
//                    .parseInt(strid));
//            detail_outcome_money_input.setText(String.valueOf(tb_outaccount.getMoney()));// 显示金额
//            detail_outcome_time_input.setText(tb_outaccount.getTime());// 显示时间
//            ///******************修改下拉列表项***********************
//            //创建一个适配器
//            ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
//                    OutcomeDetailActivity.this, R.array.outtype,android.R.layout.simple_dropdown_item_1line);
//            detail_outcome_kind_input.setAdapter(adapter); 					// 将适配器与选择列表框关联
//            ///******************************************************
//            detail_outcome_kind_input.setPrompt(tb_outaccount.getType());// 显示类别
//            detail_outcome_position_input.setText(tb_outaccount.getAddress());// 显示地点
//            detail_outcome_describe_input.setText(tb_outaccount.getMark());// 显示备注
//        } else if ("data_manage_home_income_collect_btn".equals(strType)){// 如果类型是btnininfo
//            // 根据编号查找收入信息，并存储到Tb_outaccount对象中
//            Tb_inaccount tb_inaccount = inaccountDao.find(Integer
//                    .parseInt(strid));
//            detail_outcome_money_input.setText(String.valueOf(tb_inaccount.getMoney()));// 显示金额
//            detail_outcome_time_input.setText(tb_inaccount.getTime());// 显示时间
//            detail_outcome_kind_input.setPrompt(tb_inaccount.getType());// 显示类别
//            detail_outcome_position_input.setText(tb_inaccount.getHandler());// 显示付款方
//            detail_outcome_describe_input.setText(tb_inaccount.getMark());// 显示备注
//        }
//
//        detail_outcome_time_input.setOnClickListener(new View.OnClickListener() {// 为时间文本框设置单击监听事件
//            @Override
//            public void onClick(View arg0) {
//                // TODO Auto-generated method stub
//                showDialog(DATE_DIALOG_ID);// 显示日期选择对话框
//            }
//        });
//
//        detail_outcome_admit.setOnClickListener(new View.OnClickListener() {// 为修改按钮设置监听事件
//            @Override
//            public void onClick(View arg0) {
//                // TODO Auto-generated method stub
//                if ("data_manage_home_outcome_collect_btn".equals(strType)){// 判断类型如果是btnoutinfo
//                    Tb_outaccount tb_outaccount = new Tb_outaccount();// 创建Tb_outaccount对象
//                    tb_outaccount.set_id(strid);// 设置编号
//                    tb_outaccount.setMoney(Double.parseDouble(detail_outcome_money_input
//                            .getText().toString()));// 设置金额
//                    tb_outaccount.setTime(detail_outcome_time_input.getText().toString());// 设置时间
//                    tb_outaccount.setType(detail_outcome_kind_input.getSelectedItem().toString());// 设置类别
//                    tb_outaccount.setAddress(detail_outcome_position_input.getText().toString());// 设置地点
//                    tb_outaccount.setMark(detail_outcome_describe_input.getText().toString());// 设置备注
//                    outaccountDao.update(tb_outaccount);// 更新支出信息
//                } else if ("data_manage_home_income_collect_btn".equals(strType)){// 判断类型如果是btnininfo
//                    Tb_inaccount tb_inaccount = new Tb_inaccount();// 创建Tb_inaccount对象
//                    tb_inaccount.set_id(strid);// 设置编号
//                    tb_inaccount.setMoney(Double.parseDouble(detail_outcome_money_input.getText()
//                            .toString()));// 设置金额
//                    tb_inaccount.setTime(detail_outcome_time_input.getText().toString());// 设置时间
//                    tb_inaccount.setType(detail_outcome_kind_input.getSelectedItem().toString());// 设置类别
//                    tb_inaccount.setHandler(detail_outcome_position_input.getText().toString());// 设置付款方
//                    tb_inaccount.setMark(detail_outcome_describe_input.getText().toString());// 设置备注
//                    inaccountDao.update(tb_inaccount);// 更新收入信息
//                }
//                // 弹出信息提示
//                Toast.makeText(OutcomeDetailActivity.this, "〖数据〗修改成功！", Toast.LENGTH_SHORT)
//                        .show();
//            }
//        });
//
//        detail_outcome_cancel.setOnClickListener(new View.OnClickListener() {// 为删除按钮设置监听事件
//            @Override
//            public void onClick(View arg0) {
//                // TODO Auto-generated method stub
//                if ("data_manage_home_outcome_collect_btn".equals(strType)){// 判断类型如果是btnoutinfo
//                    outaccountDao.detele(Integer.parseInt(strid));// 根据编号删除支出信息
//                } else if ("data_manage_home_income_collect_btn".equals(strType)){// 判断类型如果是btnininfo
//                    inaccountDao.detele(Integer.parseInt(strid));// 根据编号删除收入信息
//                }
//                Toast.makeText(OutcomeDetailActivity.this, "〖数据〗删除成功！", Toast.LENGTH_SHORT)
//                        .show();
//            }
//        });
//
//        final Calendar c = Calendar.getInstance();// 获取当前系统日期
//        mYear = c.get(Calendar.YEAR);// 获取年份
//        mMonth = c.get(Calendar.MONTH);// 获取月份
//        mDay = c.get(Calendar.DAY_OF_MONTH);// 获取天数
//        updateDisplay();// 显示当前系统时间
//    }
//
//    @Override
//    protected Dialog onCreateDialog(int id){// 重写onCreateDialog方法
//        switch (id) {
//            case DATE_DIALOG_ID:// 弹出日期选择对话框
//                return new DatePickerDialog(OutcomeDetailActivity.this, mDateSetListener, mYear, mMonth,
//                        mDay);
//        }
//        return null;
//    }
//
//    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
//        public void onDateSet(DatePicker view, int year, int monthOfYear,
//                              int dayOfMonth) {
//            mYear = year;// 为年份赋值
//            mMonth = monthOfYear;// 为月份赋值
//            mDay = dayOfMonth;// 为天赋值
//            updateDisplay();// 显示设置的日期
//        }
//    };
//
//    private void updateDisplay() {
//        // 显示设置的时间
//        detail_outcome_time_input.setText(new StringBuilder().append(mYear).append("-")
//                .append(mMonth + 1).append("-").append(mDay));
//    }
//
//}
